/**
 * Copyright 2009 - ChunMap
 * 
 * 这个文件是ChunMap项目的一部分。
 * ChunMap是开源软件。
 * 你可以自由复制、传播本项目的下载包文件，但必须保持其完整性。
 * 我们不用对使用中的风险及由此造成的损失承担任何责任。
 * 详细情况请见《ChunMap许可协议》。

 * 想了解更多有关ChunMap的信息，请访问http://code.google.com/p/chunmap/
 */
package chunmap.orm.mapping;

import java.util.HashMap;
import java.util.Map;

import chunmap.util.Function;

public class Mapping {

	private Map<Class<?>, Table> tables = new HashMap<Class<?>, Table>();

	public void register(Table... ts) {
		for (Table t : ts) {
			tables.put(t.getType(), t);
		}
	}

	public Table findTable(Class<?> type) {
		return tables.get(type);
	}

	public void each(Function f) {
		int i = 0;
		for (Table t : tables.values()) {
			f.call(t, i);
			i++;
		}
	}

	@Override
	public String toString() {
		StringBuilder s = new StringBuilder();
		for (Table t : tables.values()) {
			s.append(t.toString());
			s.append("\n");
		}
		return s.toString();
	}
}
